<?php
	
	
	
	$app->get('/admAplicacion/listar', function () use($app){
    	$app->render('../web/pages/admAplicacion/admAplicListar.php');
	});
	
	$app->get('/admAplicacion/listarJson', function (){
		$response = new stdClass();	
		$page = $_GET['page']; // get the requested page 
		$limit = $_GET['rows']; // get how many rows we want to have into the grid
    	$count = AdmAplicacion::getCantRows();
    	
    	if( $count >0 ) {
    		 $total_pages = ceil($count/$limit); 
		}else {
			 $total_pages = 1; 
		}
		if ($page > $total_pages) $page=$total_pages; 
		$start = $limit*$page - $limit; // do not put $limit*($page - 1)
		$admAplicaciones = AdmAplicacion::listarInicioFin($start, $limit);
    	$i = 0;
		$response->page = $page; 
		$response->total = $total_pages; 
		$response->records = $count;
		foreach ($admAplicaciones as $adm) {
    		$response->gridModel[$i]['idAdmAplicacion']=$adm->idAdmAplicacion;
			$response->gridModel[$i]['nombreApell']=$adm->nombreApell;
			$usuario = $adm->usuario()->find_one();
			if($usuario!=false){
				$response->gridModel[$i]['nombreUsuario'] = $usuario->nombre;
			}
			$i++;
		}
		echo json_encode($response);
	});
	
	$app->post('/admAplicacion/administrar', function (){
		$admAplicacion = null;
		$idAdmAplicacion = null;
		$idUsuario = null;
		$usuario = null;
		$nombreUsuario = "";
		if(isset($_POST['nombreUsuario'])){
			$nombreUsuario = $_POST['nombreUsuario'];
		}
		if($_POST['oper'] == "del" || !existeUsuarioRepetidoAdmAplicacion($nombreUsuario, $_POST['id'])){	
			if($_POST['id'] != "_empty" ){
				$idAdmAplicacion = $_POST['id'];	
			}
			//traigo el admAplicacion
			if($_POST['oper'] != "add"){
				$admAplicacion = AdmAplicacion::buscarAdmAplicacion($idAdmAplicacion);
				$usuario = $admAplicacion->usuario()->find_one();
			}
			if($_POST['oper'] == "edit"){
				$idUsuario = $usuario->idUsuario;
				$usuario->nombre = $_POST['nombreUsuario'];
				$usuario->save();
			}
			if($_POST['oper'] == "del"){
				AdmAplicacion::borrarAdmAplicacion($idAdmAplicacion);
				Usuario::borrarUsuario($usuario->idUsuario);
				
			}else{
				//admAplicacion nuevo
				if($admAplicacion == null && $_POST['oper'] == "add"){
					$usuario = Model::factory('Usuario')->create();
					$usuario->nombre = $_POST['nombreUsuario'];
					$usuario->contrasenia = "12345";
					$usuario->idPerfil = 3;
					$usuario->save();
					$idUsuario = $usuario->idUsuario;
					$admAplicacion = Model::factory('AdmAplicacion')->create();	
				}
				$admAplicacion->nombreApell = $_POST['nombreApell'];
				$admAplicacion->idUsuario = $idUsuario;
				$admAplicacion->save();
			}
		}else{
			$response = new stdClass();
			$response->estado = "ERROR";
			$response->errores = "El nombre de usuario no está disponible";
			echo json_encode($response);
			
		}
	});
	
	function existeUsuarioRepetidoAdmAplicacion($nombreUsuario,$idAdmAplicacion){
		$admAplicacion = null;
		$usuarioAux =null;
		$usuario = Usuario::buscarUsuarioPorNombre($nombreUsuario);
		if($usuario == FALSE){
			return FALSE;
		}else{
			// si es un admAplicacion que ya existe se controla si el usuario que se encontro es el que pertenece al admAplicacion
			if($idAdmAplicacion != "_empty"){
				$admAplicacion = AdmAplicacion::buscarAdmAplicacion($idAdmAplicacion);
				$usuarioAux = $AdmAplicacion->usuario()->find_one();
				if($usuario->idUsuario == $usuarioAux->idUsuario){
					return FALSE;
				}else{
					return TRUE;
				}
			}else{
				// si es un admAplicacion nuevo entonces el usuario que se encontro pertenece a otro admAplicacion
				return TRUE;
			}
		}	
	}
	

?>